package cn.echo.consul.manager.service;

import cn.echo.consul.manager.entity.vo.ProjectInfoVo;
import cn.echo.consul.manager.enums.PermissionRole;

import java.util.List;

/**
 * 项目服务接口
 */
public interface ProjectInfoService {

    /**
     * 获取环境列表
     */
    List<String> getEnvs();

    /**
     * 获取用户有权限项目列表
     * @return
     */
    List<ProjectInfoVo> getProjects(String userId, String searchKey);
    /**
     * 获取项目信息
     * @return
     */
    ProjectInfoVo getProject(String userId, String projectId);
    /**
     * 添加项目信息
     */
    void appendProject(String userId, String projectId, String projectDesc, List<String> envs);
    /**
     * 修改项目信息
     */
    void modifyProject(String userId, String projectId, String projectDesc, Boolean usable, List<String> envs);
    /**
     * 设置项目的用户权限
     */
    void modifyUserPermission(String userId, String projectId, PermissionRole role, String authorId);
    /**
     * 移除项目的用户权限
     */
    void removeUserPermission(String authorId, String userId, String projectId);
    /**
     * 获取用户所在项目权限
     */
    PermissionRole getUserPermission(String userId, String projectId);
}
